<?php

	/**
	 * 
	 * Controller referentes a telefone
	 * @author Jeferson Rodrigues
	 * @since 06/03/2012
	 *
	 */
	class TelefoneController extends Zend_Controller_Action
	{
		/*
		 * Atibutos da classe
		 */
		private $_objModelDbTableTelefone;
		private $_objModelDbTablePessoa;
		private $_objModelDbTableGenerica;
		
	    /**
	     * Inicializa os objetos necessarios para os outros metodos
	     * @see Zend_Controller_Action::init()
	     * @return VOID
	     */
	    public function init()
	    {
	    	$this->_objModelDbTableTelefone	= new Application_Model_DbTable_Telefone();
	    	$this->_objModelDbTablePessoa	= new Application_Model_DbTable_Pessoa();
	    	$this->_objModelDbTableGenerica	= new Application_Model_DbTable_Generica();
	    }
	    
	    public function formAction()
	    {
	    	#Captura informacoes para criar os campos combobox e autocomplete do formulario
			$this->view->arrTipoFoneGn			= $this->_objModelDbTableGenerica->getGenericaByTipo( Application_Model_DbTable_TipoGenerica::CONST_CO_TIPO_TELEFONE_GN );
			$this->view->arrOperadoraGn			= $this->_objModelDbTableGenerica->getGenericaByTipo( Application_Model_DbTable_TipoGenerica::CONST_CO_OPERADORA_GN );
	    	$this->view->arrPessoaAutoComplete	= $this->_objModelDbTablePessoa->listarPessoaAutoComplete();
			
			#Caso seja edicao carrega os dados do formulario
			if ( ! Library::isNullEmpty( $this->_getParam( "co_telefone" ) ) )
			{
				$arrDataForm					= Library::clearDataForm( $this->_objModelDbTableTelefone->get( $this->_getParam( "co_telefone" ) ) );
				$arrDataFormPessoa				= $this->_objModelDbTablePessoa->get( $arrDataForm[ "co_pessoa" ] );
				$arrDataForm[ "no_pessoa" ]		= $arrDataFormPessoa[ "no_pessoa" ];
				$arrDataForm[ "nu_telefone" ]	= $arrDataForm[ "nu_ddd" ] . $arrDataForm[ "nu_telefone" ];  
				$this->view->arrDataForm		= $arrDataForm;
				$this->view->booEscondeBotao	= TRUE;
			}
			
	    	#Caso seja inclusao de uma pessoa especifica carrega os dados do formulario
			if ( ! Library::isNullEmpty( $this->_getParam( "co_pessoa" ) ) )
			{
				$this->view->arrDataForm		= $this->_objModelDbTablePessoa->get( $this->_getParam( "co_pessoa" ) );
				$this->view->booEscondeBotao	= TRUE;
			}
			
			# Caso tenha submetido
			if ( $this->getRequest()->isPost() )
			{
				$mixResult = $this->_objModelDbTableTelefone->salvar( Library::clearDataForm( $_POST ) );
				if ( ( (int)$mixResult ) == 0 ) $this->view->strMensagem = "Ocorreu um erro e o registro n&atilde;o foi salvo";
				else $this->_redirect( "pessoa" );
			}
	    }
	    
	    public function excluirAction()
	    {
	    	$this->_objModelDbTableTelefone->excluir( $this->_getParam( "co_telefone" ) );
	    	$this->_redirect( "pessoa/index/booExcluirTelefone/true/co_pessoa/" . $this->_getParam( "co_pessoa" ) );
	    }
	}